import axios from 'axios'

// 创建统一的 API 实例
const api = axios.create({
  baseURL: 'http://localhost:9000', // 网关地址
  timeout: 10000,
  headers: {
    'Content-Type': 'application/json',
  },
})

// 请求拦截器
api.interceptors.request.use(
  (config) => {
    // 可以在这里添加认证 token 等
    return config
  },
  (error) => {
    return Promise.reject(error)
  },
)

// 响应拦截器
api.interceptors.response.use(
  (response) => {
    return response
  },
  (error) => {
    console.error('API请求错误:', error)

    // 处理特定的错误状态码
    if (error.response) {
      const { status, data } = error.response
      switch (status) {
        case 503:
          console.error('服务不可用 (503): 请检查微服务是否正常运行')
          // 可以显示用户友好的错误提示
          break
        case 502:
          console.error('网关错误 (502): 请检查网关配置')
          break
        case 404:
          console.error('接口不存在 (404): 请检查接口路径')
          break
        case 500:
          console.error('服务器内部错误 (500)')
          break
        default:
          console.error(`请求失败 (${status}):`, data?.message || '未知错误')
      }
    } else if (error.request) {
      console.error('网络错误: 无法连接到服务器')
    } else {
      console.error('请求配置错误:', error.message)
    }

    return Promise.reject(error)
  },
)

export default api
